#include <stdio.h>

/*
& 按位与
| 按位或
^ 异或
~ 按位取反
>> 右移运算符
<< 左移运算符

int a = 60;  60 = 0011 1100 
int b = 13;  13 = 0000 1101 

& 按位与    值会减少
    0011 1100  
    0000 1101 
    0000 1100   12
| 按位或    值会增加 
    0011 1100
    0000 1101
    0011 1101   61
^ 异或  相同为0 不同为1
~^ 同或 相同为1 不同为0
    0011 1100
    0000 1101
    0011 0001

>> 右移运算符
    0011 1100 >> 3
    0000 0111
<< 左移运算符

寄存器 0000 1100 0000 0010 0010 0010 0010 0010

0000 1100 0000 0010 0010 0010 0010 0010
0000 0100 0000 0000 0000 0000 0000 0000

结果
0000 0100 0000 0010 0010 0010 0010 0010

与
或
非
异或  相同为0 不同为1
同或  相同为1 不同为0

*/

int main(int argc, char const *argv[])
{
    // 黑盒子
    int GPIO_MIODE = 231568;
    // 0000 0000 0000 0011 1000 1000 1001 0000
    
    // 要求你将第 29 和 30 变成  01
    // & | ~ ^ 
        // 0000 0000 0000 0011 1000 1000 1001 0000
        // 0001 0000 0000 0000 0000 0000 0000 0000
    int i = 1;
    i = i << 29;
    return 0;
}










